<?php

namespace App\Home\Controllers;

use App\Home\Filters\WorshipBibleVolumeFilter;
use App\Home\Models\WorshipBibleVolume;
use App\Home\Requests\WorshipBibleVolumeRequest;
use App\Home\Resources\WorshipBibleVolumeResource;
use Illuminate\Http\Request;

class WorshipBibleVolumeController extends Controller
{
    public function store(
        WorshipBibleVolumeRequest $request, 
        WorshipBibleVolume $worshipBibleVolume
    ){
        $inputs = $request->validated();
        $worshipBibleVolume = $worshipBibleVolume->add($inputs);

        return $this->created(WorshipBibleVolumeResource::make($worshipBibleVolume));
    }

    public function update(
        WorshipBibleVolumeRequest $request, 
        WorshipBibleVolume $worshipBibleVolume
    ){
        $inputs = $request->validated();
        $worshipBibleVolume->update($inputs);

        return $this->created(WorshipBibleVolumeResource::make($worshipBibleVolume));
    }

    public function destroy(
        WorshipBibleVolume $worshipBibleVolume
    ){
        $worshipBibleVolume->delete();
        return $this->noContent();
    }

    public function index(
        WorshipBibleVolumeRequest $request,
        WorshipBibleVolumeFilter $filter
    ){
        $fields = [
            "*",
        ];
        $worshipBibleVolumes = WorshipBibleVolume::query()
            ->filter($filter)
            ->select($fields)
            ->paginate();

        return $this->ok(WorshipBibleVolumeResource::collection($worshipBibleVolumes));
    }

    public function show(
        Int $id
    ){
        $fields = [
            "*",
        ];
        $worshipBibleVolume = WorshipBibleVolume::query()
            ->select($fields)
            ->find($id);
        return $this->ok(WorshipBibleVolumeResource::make($worshipBibleVolume));
    }
}
